﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace Interfaces
{
    public interface IModule : IDisposable
    {
        /// <summary>
        /// Bitmaps for enabled/disabled states
        /// </summary>
        CustomControls.AlphaImage IconEnabled { get; }
        CustomControls.AlphaImage IconDisabled { get; }

        /// <summary>
        /// Configuration interface for the module
        /// </summary>
        System.Windows.Forms.UserControl MainInterface { get; }

        /// <summary>
        /// Name of the module
        /// </summary>
        string Name { get; }

        /// <summary>
        /// For initializaton tasks
        /// </summary>
        void Initialize();

        /// <summary>
        /// Sends the module to the background (to sleeping state)
        /// </summary>
        /// <returns>True, if the operation was successful</returns>
        bool Sleep();

        /// <summary>
        /// Wakes the module up (to normal state)
        /// </summary>
        /// <returns>True, if the operation was successful</returns>
        bool Wake();
    }
}
